문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 디자인 패턴 (문단 편집) === 파사드(Facade) === 내부의 복잡한 처리들을 대신 수행해서 결과만 넘겨주는 객체. 은행의 창구에서 근무하는 은행원 같은 역할이라 생각하면 쉽다. 굳이 객체를 따로 만드는 이유로는 하위 모듈을 건드릴 수 없는 경우(외부 라이브러리)나 저수준과 고수준 추상층(abstract layer) 개념 구분을 하고 싶은 경우, 크로스플랫폼 기술 구현 등의 이유가 있다. 파사드는 건물의 출입구가 있는 정면을 가리키는 단어다. 파사드 패턴은 시스템의 복잡성을 감추고, 사용자(Client)가 시스템에 접근할 수 있는 인터페이스(Interface)를 사용자(Client)에게 제공한다. 따라서 파사드 패턴은 기존의 시스템에 인터페이스를 추가함으로써, 복잡성을 감추기 위해 사용된다. 파사드 패턴은 구조적 패턴(Structural Pattern)에 포함된다. 구현 방법 1단계: 인터페이스를 생성한다. Shape.java {{{#!syntax java public interface Shape { void draw(); } }}} 2단계: 그 인터페이스를 구현하기 위한 구체적인 클래스를 생성한다. Rectangle.java {{{#!syntax java public class Rectangle implements Shape { @Override public void draw() { System.out.println("Rectangle::draw()"); } } }}} Square.java {{{#!syntax java public class Square implements Shape { @Override public void draw() { System.out.println("Square::draw()"); } } }}} Circle.java {{{#!syntax java public class Circle implements Shape { @Override public void draw() { System.out.println("Circle::draw()"); } } }}} 3단계: 파사드 클래스를 생성한다. ShapeMaker.java {{{#!syntax java public class ShapeMaker { private Shape circle; private Shape rectangle; private Shape square; public ShapeMaker() { circle = new Circle(); rectangle = new Rectangle(); square = new Square(); } public void drawCircle(){ circle.draw(); } public void drawRectangle(){ rectangle.draw(); } public void drawSquare(){ square.draw(); } } }}} 4단계: 다양한 종류의 형태를 만들기 위해 파사드를 사용한다. FacadePatternDemo.java {{{#!syntax java public class FacadePatternDemo { public static void main(String[] args) { ShapeMaker shapeMaker = new ShapeMaker(); shapeMaker.drawCircle(); shapeMaker.drawRectangle(); shapeMaker.drawSquare(); } } }}} 5단계: 결과값을 확인한다. {{{#!syntax java Circle::draw() Rectangle::draw() Square::draw() }}}저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기